package com.jwds.digital.bios.business.core.infrastructure.dto.belt.assembler;

import com.jwds.digital.bios.business.core.infrastructure.dto.belt.BeltRouteTaskDetailReqDTO;
import com.jwds.digital.bios.business.core.infrastructure.vo.belt.BeltRouteTaskDetailRespVO;
import com.jwds.digital.bios.business.core.infrastructure.entity.belt.BeltRouteTaskDetail;
import java.util.Objects;

/**
 * BeltRouteTaskDetail DTO与Entity之间的相互转换
 *
 * @author 林柏云
 * @date 2024-11-28
 */
public class BeltRouteTaskDetailAssembler {

  /**
  * 将传输对象转换为实体对象
  *
  * @param dto 传输对象
  * @return 实体对象
  */
  public static BeltRouteTaskDetail dto2entity(BeltRouteTaskDetailReqDTO dto)  {
    if (dto == null) {
      return null;
    }
    BeltRouteTaskDetail entity = new BeltRouteTaskDetail();
    entity.setRouteCode(dto.getRouteCode());
    entity.setTaskId(dto.getTaskId());
    entity.setStartTime(dto.getStartTime());
    entity.setEndTime(dto.getEndTime());
    entity.setRunningTime(dto.getRunningTime());
    entity.setLoadRunningTime(dto.getLoadRunningTime());
    entity.setUnLoadRunningTime(dto.getUnLoadRunningTime());
    entity.setLoadRatio(dto.getLoadRatio());
    entity.setTotalTransport(dto.getTotalTransport());
    entity.setTransportEfficiency(dto.getTransportEfficiency());
    entity.setAvgAllLoadRate(dto.getAvgAllLoadRate());
    entity.setAvgLoadRate(dto.getAvgLoadRate());
    entity.setAvgUnLoadRate(dto.getAvgUnLoadRate());
    entity.setTotalPowerConsumption(dto.getTotalPowerConsumption());
    entity.setLoadPowerConsumption(dto.getLoadPowerConsumption());
    entity.setUnLoadPowerConsumption(dto.getUnLoadPowerConsumption());
    entity.setLoadPowerConsumptionRate(dto.getLoadPowerConsumptionRate());
    entity.setUnLoadPowerConsumptionRate(dto.getUnLoadPowerConsumptionRate());
    entity.setWorkEfficiency(dto.getWorkEfficiency());
    entity.setTonPowerConsumption(dto.getTonPowerConsumption());
    entity.setLoadBalance(dto.getLoadBalance());
    entity.setTrafficBalance(dto.getTrafficBalance());
    entity.setAvgResistance(dto.getAvgResistance());
    entity.setEnergyEfficiency(dto.getEnergyEfficiency());
    return entity;
  }

  /**
  * 将传输对象转换为实体对象
  *
  * @param dto 传输对象
  * @param entity 原实体对象
  * @return 实体对象
  */
  public static BeltRouteTaskDetail dto2entity(BeltRouteTaskDetailReqDTO dto, BeltRouteTaskDetail entity){
    if (dto == null) {
      return null;
    }
    if(Objects.nonNull(dto.getRouteCode())) {
      entity.setRouteCode(dto.getRouteCode());
    }
    if(Objects.nonNull(dto.getTaskId())) {
      entity.setTaskId(dto.getTaskId());
    }
    if(Objects.nonNull(dto.getStartTime())) {
      entity.setStartTime(dto.getStartTime());
    }
    if(Objects.nonNull(dto.getEndTime())) {
      entity.setEndTime(dto.getEndTime());
    }
    if(Objects.nonNull(dto.getRunningTime())) {
      entity.setRunningTime(dto.getRunningTime());
    }
    if(Objects.nonNull(dto.getLoadRunningTime())) {
      entity.setLoadRunningTime(dto.getLoadRunningTime());
    }
    if(Objects.nonNull(dto.getUnLoadRunningTime())) {
      entity.setUnLoadRunningTime(dto.getUnLoadRunningTime());
    }
    if(Objects.nonNull(dto.getLoadRatio())) {
      entity.setLoadRatio(dto.getLoadRatio());
    }
    if(Objects.nonNull(dto.getTotalTransport())) {
      entity.setTotalTransport(dto.getTotalTransport());
    }
    if(Objects.nonNull(dto.getTransportEfficiency())) {
      entity.setTransportEfficiency(dto.getTransportEfficiency());
    }
    if(Objects.nonNull(dto.getAvgAllLoadRate())) {
      entity.setAvgAllLoadRate(dto.getAvgAllLoadRate());
    }
    if(Objects.nonNull(dto.getAvgLoadRate())) {
      entity.setAvgLoadRate(dto.getAvgLoadRate());
    }
    if(Objects.nonNull(dto.getAvgUnLoadRate())) {
      entity.setAvgUnLoadRate(dto.getAvgUnLoadRate());
    }
    if(Objects.nonNull(dto.getTotalPowerConsumption())) {
      entity.setTotalPowerConsumption(dto.getTotalPowerConsumption());
    }
    if(Objects.nonNull(dto.getLoadPowerConsumption())) {
      entity.setLoadPowerConsumption(dto.getLoadPowerConsumption());
    }
    if(Objects.nonNull(dto.getUnLoadPowerConsumption())) {
      entity.setUnLoadPowerConsumption(dto.getUnLoadPowerConsumption());
    }
    if(Objects.nonNull(dto.getLoadPowerConsumptionRate())) {
      entity.setLoadPowerConsumptionRate(dto.getLoadPowerConsumptionRate());
    }
    if(Objects.nonNull(dto.getUnLoadPowerConsumptionRate())) {
      entity.setUnLoadPowerConsumptionRate(dto.getUnLoadPowerConsumptionRate());
    }
    if(Objects.nonNull(dto.getWorkEfficiency())) {
      entity.setWorkEfficiency(dto.getWorkEfficiency());
    }
    if(Objects.nonNull(dto.getTonPowerConsumption())) {
      entity.setTonPowerConsumption(dto.getTonPowerConsumption());
    }
    if(Objects.nonNull(dto.getLoadBalance())) {
      entity.setLoadBalance(dto.getLoadBalance());
    }
    if(Objects.nonNull(dto.getTrafficBalance())) {
      entity.setTrafficBalance(dto.getTrafficBalance());
    }
    if(Objects.nonNull(dto.getAvgResistance())) {
      entity.setAvgResistance(dto.getAvgResistance());
    }
    if(Objects.nonNull(dto.getEnergyEfficiency())) {
      entity.setEnergyEfficiency(dto.getEnergyEfficiency());
    }
    return entity;
  }

  /**
  * 将实体对象转换为传输对象
  *
  * @param entity 实体对象
  * @return 传输对象
  */
  public static BeltRouteTaskDetailRespVO entity2dto(BeltRouteTaskDetail entity) {
    if (entity == null) {
      return null;
    }
    BeltRouteTaskDetailRespVO dto = new BeltRouteTaskDetailRespVO();
    dto.setId(entity.getId());
    dto.setRouteCode(entity.getRouteCode());
    dto.setTaskId(entity.getTaskId());
    dto.setStartTime(entity.getStartTime());
    dto.setEndTime(entity.getEndTime());
    dto.setRunningTime(entity.getRunningTime());
    dto.setLoadRunningTime(entity.getLoadRunningTime());
    dto.setUnLoadRunningTime(entity.getUnLoadRunningTime());
    dto.setLoadRatio(entity.getLoadRatio());
    dto.setTotalTransport(entity.getTotalTransport());
    dto.setTransportEfficiency(entity.getTransportEfficiency());
    dto.setAvgAllLoadRate(entity.getAvgAllLoadRate());
    dto.setAvgLoadRate(entity.getAvgLoadRate());
    dto.setAvgUnLoadRate(entity.getAvgUnLoadRate());
    dto.setTotalPowerConsumption(entity.getTotalPowerConsumption());
    dto.setLoadPowerConsumption(entity.getLoadPowerConsumption());
    dto.setUnLoadPowerConsumption(entity.getUnLoadPowerConsumption());
    dto.setLoadPowerConsumptionRate(entity.getLoadPowerConsumptionRate());
    dto.setUnLoadPowerConsumptionRate(entity.getUnLoadPowerConsumptionRate());
    dto.setWorkEfficiency(entity.getWorkEfficiency());
    dto.setTonPowerConsumption(entity.getTonPowerConsumption());
    dto.setLoadBalance(entity.getLoadBalance());
    dto.setTrafficBalance(entity.getTrafficBalance());
    dto.setAvgResistance(entity.getAvgResistance());
    dto.setEnergyEfficiency(entity.getEnergyEfficiency());
    dto.setCreateTime(entity.getCreateTime());
    dto.setModifyTime(entity.getModifyTime());
    dto.setCreateUser(entity.getCreateUser());
    dto.setModifyUser(entity.getModifyUser());
    return dto;
  }

}
